<cfcomponent output="false">
	
	<cfset this.name = "" />
	
	<cffunction name="init" access="public" output="false" returntype="Component">
        <cfset var i = "" />
        <cfloop collection="#arguments#" item="i">
        
            <cfset this[ i ] = arguments[ i ] />
        
        </cfloop>
		<cfreturn this />
	</cffunction>
	
	<cffunction name="add" access="public" output="false" returntype="void">
		<cfargument name="component" type="Component" required="true" />
		<cfabort showerror="Abstract Method !" />
	</cffunction>
	
	<cffunction name="remove" access="public" output="false" returntype="void">
		<cfargument name="component" type="Component" required="true" />
		<cfabort showerror="Abstract Method !" />
	</cffunction>
	
	<cffunction name="getChild" access="public" output="false" returntype="Component">
		<cfargument name="index" type="numeric" required="true" />
		<cfabort showerror="Abstract Method !" />
	</cffunction>
	
	<cffunction name="describe" access="public" output="false" returntype="void">
		<cfabort showerror="Abstract Method !" />
	</cffunction>

</cfcomponent>